1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package net.sf.mavenizer.cli.commands;
18
19 import java.io.File;
20 import java.io.FileInputStream;
21 import java.io.FileNotFoundException;
22 import java.io.IOException;
23 import java.io.InputStream;
24
25 import net.sf.mavenizer.MavenizerException;
26 import net.sf.mavenizer.cli.exceptions.ProjectLoadingException;
27 import net.sf.mavenizer.generators.Generator;
28 import net.sf.mavenizer.generators.maven.repository.MavenRepositoryGenerator;
29 import net.sf.mavenizer.io.reader.DefaultMavenizerProjectReader;
30 import net.sf.mavenizer.io.reader.MavenizerProjectReader;
31 import net.sf.mavenizer.model.Project;
32
33 import org.apache.commons.logging.Log;
34 import org.apache.commons.logging.LogFactory;
35
36
37 /***
38 * @author <a href="mailto:cedric-vidal@users.sourceforge.net">Cédric
39 * Vidal</a>
40 *
41 */
42 public class Generate {
43
44 private static final Log log = LogFactory.getLog(Generate.class);
45
46 private File rootDir;
47
48 private File workDir;
49
50 private File repoDir;
51
52 private File projectFile;
53
54 private MavenizerProjectReader mavenizerProjectReader;
55
56 private File tempDir;
57
58 private Generator generator;
59
60 public void execute() throws MavenizerException {
61 log.info("Generating " + getProjectFile() + " to " + getRepoDir());
62 Project mavenizer = loadProject();
63 getGenerator().generate(mavenizer);
64 log.info("Finished");
65 }
66
67 protected Project loadProject() throws MavenizerException {
68 Project mavenizer = null;
69 InputStream inputStream = null;
70 try {
71 inputStream = new FileInputStream(getProjectFile());
72 mavenizer = getMavenizerProjectReader().read(inputStream);
73 } catch (FileNotFoundException e) {
74 throw new ProjectLoadingException(e);
75 } finally {
76 if (inputStream != null) {
77 try {
78 inputStream.close();
79 } catch (IOException e) {
80 throw new ProjectLoadingException(e);
81 }
82 }
83 }
84 return mavenizer;
85 }
86
87 private MavenizerProjectReader getMavenizerProjectReader() {
88 if (mavenizerProjectReader == null) {
89 mavenizerProjectReader = new DefaultMavenizerProjectReader();
90 }
91 return mavenizerProjectReader;
92 }
93
94 /***
95 * @return Returns the rootDir.
96 */
97 public File getRootDir() {
98 return rootDir;
99 }
100
101 /***
102 * @param rootDir
103 * The rootDir to set.
104 */
105 public void setRootDir(File rootDir) {
106 this.rootDir = rootDir;
107 }
108
109 /***
110 * @return Returns the workDir.
111 */
112 public File getWorkDir() {
113 if (workDir == null) {
114 workDir = new File(getRootDir(), "work");
115 }
116 return workDir;
117 }
118
119 /***
120 * @param workDir
121 * The workDir to set.
122 */
123 public void setWorkDir(File workDir) {
124 this.workDir = workDir;
125 }
126
127 /***
128 * @return Returns the tempDir.
129 */
130 public File getTempDir() {
131 if (tempDir == null) {
132 tempDir = new File(getRootDir(), "temp");
133 }
134 return tempDir;
135 }
136
137 /***
138 * @param tempDir
139 * The tempDir to set.
140 */
141 public void setTempDir(File tempDir) {
142 this.tempDir = tempDir;
143 }
144
145 /***
146 * @return Returns the projectFile.
147 */
148 public File getProjectFile() {
149 if (projectFile == null) {
150 projectFile = new File(getWorkDir(), "mavenizer.xml");
151 }
152 return projectFile;
153 }
154
155 /***
156 * @param projectFile
157 * The projectFile to set.
158 */
159 public void setProjectFile(File projectFile) {
160 this.projectFile = projectFile;
161 }
162
163 public Generator getGenerator() {
164 if (generator == null) {
165 generator = new MavenRepositoryGenerator();
166 generator.setOutputDir(getRepoDir());
167 }
168 return generator;
169 }
170
171 public void setMavenRepositoryGenerator(Generator generator) {
172 this.generator = generator;
173 }
174
175 public File getRepoDir() {
176 if (repoDir == null) {
177 repoDir = new File(getRootDir(), "repository");
178 }
179 return repoDir;
180 }
181
182 public void setRepoDir(File repoDir) {
183 this.repoDir = repoDir;
184 }
185
186 }